package com.glodon.paas.qto.service;

import java.util.Date;
import java.util.List;

import com.glodon.paas.qto.model.Job;
import com.glodon.paas.qto.model.Task;
import com.glodon.paas.qto.model.TaskProgress;

/**
 * 任务分发合并管理.
 * 
 * @author botao.liao
 * 
 */
public interface QtoService {

	/**
	 * 接收任务请求进行处理.
	 * @param params
	 *            任务参数
	 * 
	 * @return 任务实例号
	 */
	public String create(Job job);

	/**
	 * 任务执行后的通知处理.
	 * 
	 * @param taskId
	 *            来至jobserver的jobServerTaskId
	 * @param progress
	 *            Task进度
	 * @return 
	 *         整个Job执行完成返回true，未完成返回false.
	 * 
	 */
	public boolean processTaskNotify(String jobServerTaskId, TaskProgress progress);

	/**
	 * 查询JobRequest对象.
	 * 
	 * @param requestId
	 * @return
	 */
    public Job getJob(String requestId);
    
    /**
     * 根据用户Id查询所有的Job.
     * 
     * @param userId
     * @return
     */
    public List<Job> findByUserId(String userId, Date fromTime, Date toTime);
    
    public List<Task> findChildTask(String jobId);
}
